#! /usr/bin/bash
# GCC_COMPILE_TEST.sh
# Create by GF 2024-09-12

# Compile as Executable Binary File (编译为可执行二进制文件).
gcc -o test test.c

# Link and Compile Multiple Files into One Executable Binary File (链接编译多个文件为一个可执行二进制文件).
gcc -o test test.c GF_C_MODEL_STRING_LIKE_LIST_GB2312.c

# Compile as .a Static Library File (编译为 .a 静态库文件).
# 这将把编译好的 example.o 目标文件打包成 libexample.a 静态库文件.
gcc -c -o test.o test.c # ---> 1. 编译为目标文件.
ar rcs test.a test.o    # ---> 2. 创建静态库.

# Compile as .so Dynamic Library File (编译为 .so 动态库文件).
# 这将把编译好的 example.o 共享目标文件打包成 libexample.so 动态库文件.
# -fPIC 选项用于生成位置独立的代码, 这是动态链接库需要的.
gcc -fPIC -o test.o -c test.c    # ---> 编译为共享目标文件.
gcc -shared -o libtest.so test.o # ---> 创建动态库.
